Ext.ns('Tm.task');
Tm.task.TaskIndexPanel = Ext.extend(Ext.Panel, {
			frame : true,
			autoWidth : true,
			// autoHeight : true,
			layout : 'fit',
			initComponent : function() {
				var form = new Tm.common.FormPanel({
							layout : 'table',
							layoutConfig : {
								columns : 3
							},
							defaults : {
								xtype : 'textfield',
								margins : '0 5 0 0'
							},
							items : [{
										plugins : [Ext.ux.FieldLabeler],
										xtype : 'textfield',
										name : 'companyName',
										fieldLabel : '客户名称'
									}, {
										plugins : [Ext.ux.FieldLabeler],
										xtype : 'textfield',
										name : 'taskName',
										fieldLabel : '案例名称'
									}, {
										plugins : [Ext.ux.FieldLabeler],
										fieldLabel : '进展状态',
										name : 'status',
										hiddenName : 'status',
										// allowBlank : false,
										valueField : 'code',
										displayField : 'name',
										typeAhead : true,
										xtype : 'combo',
										mode : 'remote',
										forceSelection : true,
										triggerAction : 'all',
										emptyText : '请选择...',
										selectOnFocus : true,
										store : new Ext.data.JsonStore({// /列表框中的选项数据
											url : 'task/getTaskStatusList.do',
											fields : [{
														name : 'code'
													}, {
														name : 'name'
													}]
										})
									}]
						});
				var sm = new Ext.grid.CheckboxSelectionModel();
				var cm = new Ext.grid.ColumnModel([sm, {
							header : 'id',
							width : 20,
							dataIndex : 'id',
							hidden : true
						}, {
							header : '案例中文名称',
							width : 80,
							dataIndex : 'cnName',
							sortable : true
						}, {
							header : '案例英文名称',
							width : 80,
							dataIndex : 'enName',
							sortable : true
						}, {
							header : '客户名称',
							width : 80,
							dataIndex : 'compName',
							sortable : true
						}, {
							header : '进展状态',
							width : 40,
							dataIndex : 'status',
							align : 'status',
							sortable : true
						}, {
							header : '创建日期',
							width : 150,
							renderer : Ext.util.Format.customDateRenderer('Y-m-d'),
							dataIndex : 'createTime'
						}]);
				cm.defaultSortable = true;
				var fields = [{
							name : 'id',
							type : 'int',
							mapping : 'id'
						}, {
							name : 'compId',
							type : 'int',
							mapping : 'compId'
						}, {
							name : 'cnName',
							type : 'string',
							mapping : 'cnName'
						}, {
							name : 'enName',
							type : 'string',
							mapping : 'enName'
						}, {
							name : 'compName',
							type : 'string',
							mapping : 'compName'
						}, {
							name : 'status',
							type : 'string',
							mapping : 'status'
						}, {
							name : 'createTime',
							type : 'string',
							mapping : 'createTime'
						}];
				var ds = new Ext.data.Store({
							id : 'taskIndexPanelGridPanelStore',
							proxy : new Ext.data.HttpProxy({
										url : 'task/queryTask.do'
									}),
							reader : new Ext.data.JsonReader({
										totalProperty : 'totalProperty',
										root : 'root',
										id : 'id',
										fields : fields
									}),
							baseParams : {
								start : 0,
								limit : 20
							},
							sortInfo : {
								field : 'id',
								direction : 'ASC'
							},
							autoLoad : true,
							listeners : {
								beforeload : function() {
									Ext.apply(this.baseParams, form.getForm().getFieldValues(false));
								}
							}
						});
				var grid = new Ext.grid.GridPanel({
							store : ds,
							sm : sm,
							cm : cm,
							border : false,
							stripeRows : true,
							autoHeight : true,
							viewConfig : {
								forceFit : true
							},
							bbar : new Ext.PagingToolbar({
										plugins : new Ext.ux.ProgressBarPager(),
										pageSize : 20,
										store : ds,
										displayInfo : true,
										emptyMsg : '没有记录'
									}),
							listeners : {
								celldblclick : function(grid, rowIndex, columnIndex, event) {
									var store = grid.getStore();
									var data = store.getAt(rowIndex).data;
									var taskAddPanel = new Tm.task.TaskAddPanel({
												dataId : data.id,
												compId : data.compId
											});
									var taskAddWindow = new Tm.common.CommonWindow({
												id : 'taskUpdateWindow',
												title : '更新案例',
												height : 600,
												width : 800,
												resizable : true,
												// plain : true,
												// bodyStyle : 'padding:5px;',
												items : taskAddPanel
											});
									taskAddWindow.on('close', function(panel) {
												ds.load();
											});
									taskAddWindow.show();
								}
							}
						});
				var toolBar = new Ext.Toolbar({
							hideBorders : true,
							buttons : [{
										text : '查询',
										iconCls : 'act_queryIcon',
										handler : function() {
											ds.load();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										text : '重置',
										iconCls : 'act_resetIcon',
										handler : function() {
											form.getForm().reset();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										text : '新增',
										iconCls : 'act_addIcon',
										handler : function() {
											var taskAddPanel = new Tm.task.TaskAddPanel();
											var taskAddWindow = new Tm.common.CommonWindow({
														id : 'taskAddWindow',
														title : '新增案例',
														height : 600,
														width : 800,
														resizable : true,
														items : taskAddPanel
													});
											taskAddWindow.on('close', function(panel) {
														ds.load();
													});
											taskAddWindow.show();
										}
									}]
						});
				Ext.apply(this, {
							tbar : toolBar,
							items : [form, grid]
						});
				Tm.task.TaskIndexPanel.superclass.initComponent.call(this);
			}
		});
